/**
 * 游戏主页面
 */
import { gameScene } from '../scene/index'
import { Cylinder, Cuboid } from '../block/index'

class GamePage {
    constructor(callbacks) {
        this.callbacks = callbacks
    }

    // init() {
    //     // console.log('game page init!')

    //     // const width = window.innerWidth
    //     // const height = window.innerHeight
    //     // let currentAngle = 0
    //     // let lastTimestamp = Date.now()

    //     // const renderer = new THREE.WebGLRenderer({
    //     //     canvas: canvas
    //     // })

    //     // const camera = new THREE.OrthographicCamera(
    //     //     -width / 2,
    //     //     width / 2,
    //     //     height / 2,
    //     //     -height / 2,
    //     //     -1000,
    //     //     1000
    //     // )

    //     // renderer.setClearColor(new THREE.Color(0, 0, 0))
    //     // renderer.setSize(width, height)

    //     // const triangleShape = new THREE.Shape()
    //     // triangleShape.moveTo(0, 100)
    //     // triangleShape.lineTo(-100, -100)
    //     // triangleShape.lineTo(100, -100)
    //     // triangleShape.lineTo(0, 100)

    //     // const geometry = new THREE.ShapeGeometry(triangleShape)

    //     // const material = new THREE.MeshBasicMaterial({
    //     //     color: 0x00ff00,
    //     //     side: THREE.DoubleSide
    //     // })
    //     // this.mesh = new THREE.Mesh(geometry, material)
    //     // this.mesh.position.x = 0
    //     // this.mesh.position.y = 0
    //     // this.mesh.position.z = 1
    //     // this.scene.add(this.mesh)

    //     // var axesHelper = new THREE.AxesHelper(1000)
    //     // this.scene.add(axesHelper)

    //     // camera.position.x = 0
    //     // camera.position.y = 0
    //     // camera.position.z = 0
    //     // camera.lookAt(new THREE.Vector3(0, 0, 1))

    //     // const animate = function () {
    //     //     let now = Date.now()
    //     //     let duration = now - lastTimestamp
    //     //     lastTimestamp = now
    //     //     currentAngle = currentAngle + duration / 100 * Math.PI
    //     // }

    //     // setTimeout(() => {
    //     //     this.callbacks.showGameOverPage()
    //     // }, 2000)

    //     // const render = () => {
    //     //     animate()
    //     //     this.mesh.rotation.set(currentAngle, 0, 0)
    //     //     renderer.render(this.scene, camera)
    //     //     requestAnimationFrame(render)
    //     // }

    //     // render()
    // }
    init() {
        this.gameScene = gameScene
        this.gameScene.init()
        this.addInitBlock()
        this.render()
    }

    render() {
        this.gameScene.render()
        requestAnimationFrame(this.render.bind(this))
    }

    /** 渲染方块 */
    addInitBlock() {
        const cuboid = new Cuboid(-15, 0, 0)
        const cylinder = new Cylinder(23, 0, 0)
        this.gameScene.instance.add(cuboid.instance)
        this.gameScene.instance.add(cylinder.instance)
    }

    show() {
        this.mesh.visible = true
        console.log('game page show!')
    }

    hide() {
        this.mesh.visible = false
        console.log('game page hide!')
    }

    restart() {
        console.log('game page restart!')
    }
}

export default GamePage